package com.ghp.common.constants;

/**
 * @author ghp
 * @title Redis缓存常量池
 * @description
 */
public class RedisConstants {
    private RedisConstants() {
    }

    // 登录相关

    /**
     * 登录用户前缀
     */
    public static final String LOGIN_USER_KEY = "login:user:";

    /**
     * 登录用户有效期 ms
     */
    public static final Long LOGIN_USER_TTL = 6 * 60 * 1000L;

    /**
     * 登录状态
     */
    public static final String LOGIN_USER_STATE_KEY = "login:state:";
    /**
     * 登录状态有效期 ms
     */
    public static final Long LOGIN_USER_STATE_KEY_TTL = 3 * 60 * 1000L;

    /**
     * 登录验证码
     */
    public static final String LOGIN_CAPTCHA_KEY = "login:captcha:";

    /**
     * 短信验证码有效期 s
     */
    public static final Long LOGIN_CAPTCHA_TTL = 3 * 60L;

    // 接口相关

    /**
     * 接口缓存数据前缀
     */
    public static final String INTERFACE_KEY = "interface:";
    /**
     * 接口剩余调用次数 key
     */
    public static final String INTERFACE_LEFT_NUM_KEY = "interface:leftNum";
    /**
     * 接口请求路径和方法关联 key，通过path和method记录接口的关系
     */
    public static final String INTERFACE_PATH_METHOD_KEY = "interface:pathMethod";
    /**
     * 接口缓存数据有效期 ms
     */
    public static final Long INTERFACE_CACHE_TTL = 3 * 60 * 1000L;

    // 文件相关
    /**
     * 文件块缓存前缀
     */
    public static final String FILE_CHUNK_KEY = "file:chunk:";
    /**
     * 文件分块存入OSS后返回的标识信息
     */
    public static final String FILE_TAG_KEY = "file:tag:";

    /**
     * 文件块缓存有效期 h
     */
    public static final Long FILE_CHUNK_TTL = 12L;


    // 其它

    /**
     * 空对象的有效期 ms
     */
    public static final Long NULL_CACHE_TTL = 3L;

    /**
     * 互斥锁
     */
    public static final String LOCK_KEY = "lock:";

}
